using ERP.Common.Results;
using ERP.ERPSystem.WarehouseManagement.Dto;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace ERP.ERPSystem.WarehouseManagement
{
    /// <summary>
    /// 来料检验服务接口
    /// </summary>
    public interface IIncomingInspectionServices
    {
        /// <summary>
        /// 分页查询来料检验记录
        /// </summary>
        /// <param name="queryDto">查询条件</param>
        /// <returns>分页结果</returns>
        Task<APIPaging<IncomingInspectionDto>> GetPagedListAsync(IncomingInspectionQueryDto queryDto);

        /// <summary>
        /// 根据ID获取来料检验记录
        /// </summary>
        /// <param name="id">记录ID</param>
        /// <returns>来料检验记录</returns>
        Task<IncomingInspectionDto> GetByIdAsync(int id);

        /// <summary>
        /// 新增来料检验记录
        /// </summary>
        /// <param name="createDto">新增数据</param>
        /// <returns>操作结果</returns>
        Task<bool> CreateAsync(IncomingInspectionCreateDto createDto);

        /// <summary>
        /// 更新来料检验记录
        /// </summary>
        /// <param name="updateDto">更新数据</param>
        /// <returns>操作结果</returns>
        Task<bool> UpdateAsync(IncomingInspectionUpdateDto updateDto);

        /// <summary>
        /// 删除来料检验记录
        /// </summary>
        /// <param name="id">记录ID</param>
        /// <returns>操作结果</returns>
        Task<bool> DeleteAsync(int id);

        /// <summary>
        /// 批量删除来料检验记录
        /// </summary>
        /// <param name="ids">记录ID列表</param>
        /// <returns>操作结果</returns>
        Task<bool> BatchDeleteAsync(List<int> ids);
    }
} 